package com.cskaoyan.javase.oop3._4anonymous._2exercise;

/**
 * 不修改main方法和接口Inter的前提下，补齐Outer类代码，要求在控制台输出HelloWorld
 *
 * @since 16:13
 * @author wuguidong@cskaoyan.onaliyun.com
 */


public class Test {
    public static void main(String[] args) {
        /*
            method方法通过类名点调用,说明它是静态方法
            其次,该方法调用的结果,还能够继续调用show方法,而show方法是接口中的抽象方法
                说明method方法调用的结果是接口的实现类对象
            所以method方法的声明:
                public static Inter method()
         */
        Outer.method().show();
    }
}

interface Inter {
    void show();
}

class InterImpl implements Inter {
    @Override
    public void show() {
        System.out.println("hello world!");
    }
}

class Outer {
    public static Inter method() {
        /*
        // 用局部内部类实现接口的子类对象
        class InterImpl implements Inter{
            @Override
            public void show() {
                System.out.println("hello world!");
            }
        }
        return new InterImpl();
        */
        // 用匿名内部类实现接口的子类对象
        return new Inter() {
            @Override
            public void show() {
                System.out.println("hello world!");
            }
        };
    }
}